//
//  interface_network_filter.h
//  testpcap
//
//  Created by bugforever on 1/10/15.
//  Copyright (c) 2015 bugforever. All rights reserved.
//

#ifndef __interface_network_filter_h
#define __interface_network_filter_h

#include "network_type.h"

class interface_event_callback
{
public:
    virtual void on_event( int event_type , char * str_event , void * param1 , void * param2 ) = 0;
};

class interface_network_filter
{
public:
    virtual bool set_network_filter( interface_network_filter * ptr_obj ) = 0;
    virtual bool set_parent_network_filter( interface_network_filter * ptr_obj ) = 0;
    
    virtual void set_event_callback( interface_event_callback * ptr_obj ) = 0;
    
    virtual void send_network_data( FILTER_ACCEPT_DATATYPE type , void * ptr_data ) = 0;
    virtual void recv_network_data( FILTER_ACCEPT_DATATYPE type , void * ptr_data ) = 0;
    
    virtual FILTER_ACCEPT_DATATYPE get_filter_accept_datatype() = 0;
    virtual FILTER_ACCEPT_DATATYPE get_filter_output_datatype() = 0;
};


#endif
